package model

// Gps 上报Location
type Location struct {
	Type       uint8   `json:"tp"`  // 定位类型
	Satellites uint8   `json:"sat"` // 卫星数
	Speed      float32 `json:"spd"` // 速度
	Angle      float32 `json:"agl"` // 角度
	Longitude  float32 `json:"lng"` // 经度
	Latitude   float32 `json:"lat"` // 纬度
	Altitude   int     `json:"alt"` // 海拔
}

// Mileage 里程
type Mileage struct {
	Total uint32 `json:"tml"` // 总共
	Now   uint32 `json:"nml"` // 当前
}

// Module 模块状态
type Module struct {
	Dial      uint8  `json:"dial"` // 移动网络(0:数据不存在，1:数据存在)
	Gps       uint8  `json:"gps"`  // 定位模块(0:数据不存在，1:数据存在)
	Wifi      uint8  `json:"wifi"` // WIFI模块(0:数据不存在，1:数据存在)
	Gsensor   uint8  `json:"gs"`   // GSensor(0:数据不存在，1:数据存在)
	Record    uint16 `json:"rec"`  // 每一位代表一个通道
	VideoLoss uint16 `json:"vlos"`
}

// Mobile 移动网络状态
type Mobile struct {
	Signal uint8 `json:"sgl"` // 信号强度
	Type   uint8 `json:"tp"`  // 网络类型
}

// Status 状态数据
type Status struct {
	GUID     uint    `json:"id"`
	DeviceNo string  `json:"deviceNo" gorm:"index:dd;priority:1"`
	DTU      string  `json:"dtu" gorm:"type:datetime;index:dd;priority:1"` // 时间 fixme: 优先级无效
	Flag     uint8   `json:"flag"`                                         // 0-实时 1-补传 2-报警开始 3-报警结束
	Status   JStatus `json:"status"`
}

// TableName 表名
func (Status) TableName() string {
	return "t_device_status"
}
